package com.dragon.modules.yuegou.enums.code;

import com.dragon.common.constant.enums.IBusinessCode;

import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * 会员业务状态码
 * 
 * @author 刘武
 *
 */
public enum DistrictCode implements IBusinessCode {


	BUSDID_ERROR(11001, "商圈不存在，或商圈配置错误"),
	BUSDID_IS_EMPTY(11002, "商圈id为空"),
	
	/**
	 * 试图删除大运营平台给的管理员账号
	 * */
	CANNOT_DELETE_ADMIN(11003,"无法删除或禁用此管理员账号"),
	/**
	 * 试图删除系统中的最后一个账号
	 * */
	CANNOT_DELETE_LAST_ACCOUNT(11004,"无法删除或禁用本系统中的最后一个账号"),
	/**
	 * 试图删除系统中的最后一个管理员
	 * */
	CANNOT_DELETE_LAST_ADMIN(11005,"无法删除或禁用本系统中的最后一个管理员账号，请先把管理员角色授权给其他用户"),
	
	DISTRICT_NOTNULL(11006, "商圈信息不能为空"),
	/**
	 * 状态码说明
	 */
	TODO(11000, "提示消息");
	
	private final Integer code;

	private final String message;

	private DistrictCode(Integer code, String message) {
		this.code = code;
		this.message = message;
	}

	public Integer getCode() {
		return code;
	}

	public String getMessage() {
		return message;
	}

	/**
	 * 把code转化为ResponseCode枚举
	 * 
	 * @param code 代码
	 * @return
	 */
	public static DistrictCode from(Integer code) {
		if (code == null) {
			return null;
		}
		return CODE_MAP.get(code);
	}

	/**
	 * Code Map for ResponseCode
	 */
	private static final Map<Integer, DistrictCode> CODE_MAP = Stream.of(DistrictCode.values())
			.collect(Collectors.toMap(DistrictCode::getCode, e -> e));
	
}
